package com.yicong.ants.bean.me;

import com.google.gson.annotations.SerializedName;
import com.yicong.ants.bean.base.BaseBean;
import com.yicong.ants.bean.common.PageInfoBean;

import java.util.List;

/**
 * @author cchao
 * @version 2019-08-08.
 */
public class MyPointResp extends BaseBean {
    public PageInfoBean pageInfo;
    public String count;
    public String count_available;
    @SerializedName("list")
    private List<PointBean> data;

    public MyPointResp() {
    }

    public PageInfoBean getPageInfo() {
        return this.pageInfo;
    }

    public String getCount() {
        return this.count;
    }

    public String getCount_available() {
        return this.count_available;
    }

    public List<PointBean> getData() {
        return this.data;
    }

    public void setPageInfo(PageInfoBean pageInfo) {
        this.pageInfo = pageInfo;
    }

    public void setCount(String count) {
        this.count = count;
    }

    public void setCount_available(String count_available) {
        this.count_available = count_available;
    }

    public void setData(List<PointBean> data) {
        this.data = data;
    }

    public boolean equals(final Object o) {
        if (o == this) return true;
        if (!(o instanceof MyPointResp)) return false;
        final MyPointResp other = (MyPointResp) o;
        if (!other.canEqual((Object) this)) return false;
        if (!super.equals(o)) return false;
        final Object this$pageInfo = this.getPageInfo();
        final Object other$pageInfo = other.getPageInfo();
        if (this$pageInfo == null ? other$pageInfo != null : !this$pageInfo.equals(other$pageInfo))
            return false;
        final Object this$count = this.getCount();
        final Object other$count = other.getCount();
        if (this$count == null ? other$count != null : !this$count.equals(other$count))
            return false;
        final Object this$count_available = this.getCount_available();
        final Object other$count_available = other.getCount_available();
        if (this$count_available == null ? other$count_available != null : !this$count_available.equals(other$count_available))
            return false;
        final Object this$data = this.getData();
        final Object other$data = other.getData();
        if (this$data == null ? other$data != null : !this$data.equals(other$data)) return false;
        return true;
    }

    protected boolean canEqual(final Object other) {
        return other instanceof MyPointResp;
    }

    public int hashCode() {
        final int PRIME = 59;
        int result = super.hashCode();
        final Object $pageInfo = this.getPageInfo();
        result = result * PRIME + ($pageInfo == null ? 43 : $pageInfo.hashCode());
        final Object $count = this.getCount();
        result = result * PRIME + ($count == null ? 43 : $count.hashCode());
        final Object $count_available = this.getCount_available();
        result = result * PRIME + ($count_available == null ? 43 : $count_available.hashCode());
        final Object $data = this.getData();
        result = result * PRIME + ($data == null ? 43 : $data.hashCode());
        return result;
    }

    public String toString() {
        return "MyPointResp(pageInfo=" + this.getPageInfo() + ", count=" + this.getCount() + ", count_available=" + this.getCount_available() + ", data=" + this.getData() + ")";
    }

    public static class PointBean {

        /**
         * type_status : 1
         * num : 5
         * describe : 签到送门票
         * createtime : 2019-08-08 14:21:13
         */

        private int type_status;
        private int num;
        private String numStr;
        private String describe;
        private String createtime;

        public PointBean() {
        }

        public String getNumStr() {
            if (type_status == 0) {
                return "- " + num;
            } else {
                return "+ " + num;
            }
        }

        public int getType_status() {
            return this.type_status;
        }

        public int getNum() {
            return this.num;
        }

        public String getDescribe() {
            return this.describe;
        }

        public String getCreatetime() {
            return this.createtime;
        }

        public void setType_status(int type_status) {
            this.type_status = type_status;
        }

        public void setNum(int num) {
            this.num = num;
        }

        public void setNumStr(String numStr) {
            this.numStr = numStr;
        }

        public void setDescribe(String describe) {
            this.describe = describe;
        }

        public void setCreatetime(String createtime) {
            this.createtime = createtime;
        }

        public boolean equals(final Object o) {
            if (o == this) return true;
            if (!(o instanceof PointBean)) return false;
            final PointBean other = (PointBean) o;
            if (!other.canEqual((Object) this)) return false;
            if (this.getType_status() != other.getType_status()) return false;
            if (this.getNum() != other.getNum()) return false;
            final Object this$numStr = this.getNumStr();
            final Object other$numStr = other.getNumStr();
            if (this$numStr == null ? other$numStr != null : !this$numStr.equals(other$numStr))
                return false;
            final Object this$describe = this.getDescribe();
            final Object other$describe = other.getDescribe();
            if (this$describe == null ? other$describe != null : !this$describe.equals(other$describe))
                return false;
            final Object this$createtime = this.getCreatetime();
            final Object other$createtime = other.getCreatetime();
            if (this$createtime == null ? other$createtime != null : !this$createtime.equals(other$createtime))
                return false;
            return true;
        }

        protected boolean canEqual(final Object other) {
            return other instanceof PointBean;
        }

        public int hashCode() {
            final int PRIME = 59;
            int result = 1;
            result = result * PRIME + this.getType_status();
            result = result * PRIME + this.getNum();
            final Object $numStr = this.getNumStr();
            result = result * PRIME + ($numStr == null ? 43 : $numStr.hashCode());
            final Object $describe = this.getDescribe();
            result = result * PRIME + ($describe == null ? 43 : $describe.hashCode());
            final Object $createtime = this.getCreatetime();
            result = result * PRIME + ($createtime == null ? 43 : $createtime.hashCode());
            return result;
        }

        public String toString() {
            return "MyPointResp.PointBean(type_status=" + this.getType_status() + ", num=" + this.getNum() + ", numStr=" + this.getNumStr() + ", describe=" + this.getDescribe() + ", createtime=" + this.getCreatetime() + ")";
        }
    }
}
